home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)t4.d64
/
grandprix.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
5KB
|
155 lines
0 REM GRANDPRIX BY C.R.WRIGHT
1 REM
2 POKE53280,1:POKE53281,1:POKE646,15:GOTO2000
3 PRINTCHR$(8):HS=0:DIMTR$(17)
5 PRINT"[147][154]DO YOU REQUIRE INSTRUCTIONS (Y OR N)"
6 GETA$:IFA$=""THEN6
7 IFA$="N"THEN10
8 IFA$="Y"THEN1000
9 GOTO6
10 PRINT"[147]";:S=0
12 SN=54272:LN=SN:HN=SN+1:VL=SN+24:WV=SN+4:AD=SN+5
13 REM INITIAL SETUP AND MAIN START LOGO
20 CL$(1)="":CL$(2)="[154]":CL$(3)="[129]":CL$(4)="[150]"
25 FORI=1TO4:PRINTCL$(I);:GOSUB30:PRINT:NEXT:GOTO90
30 PRINT" [166][166] [166][166][166] [166] [166] [166] [166][166][166] [166][166][166] [166][166][166] [166] [166] [166]"
40 PRINT" [166] [166] [166] [166] [166] [166][166] [166] [166] [166] [166] [166] [166] [166] [166] [166]"
50 PRINT" [166] [166] [166][166] [166][166][166] [166][166][166] [166] [166] [166][166][166] [166][166] [166] [166]"
60 PRINT" [166] [166] [166] [166] [166] [166] [166][166] [166] [166] [166] [166] [166] [166] [166] [166]"
70 PRINT" [166] [166] [166] [166] [166] [166] [166] [166][166] [166] [166] [166] [166] [166] [166]"
80 RETURN
90 PRINT"";
100 PRINT"";
105 PRINT" "
110 PRINT"[156] BY C.R.WRIGHT "
115 PRINT" "
120 PRINT"";
130 FORK=1TO3:PRINT" ":NEXT
140 PRINT"[145][145]";
150 MS$=" A [209]COMPUTERS GAME "
155 PRINT"";
160 FORK=1TOLEN(MS$):PRINTMID$(MS$,K,1);:FORI=1TO30:NEXT:NEXT:PRINT
170 PRINT"";
180 PRINT" [144] PRESS ANY KEY TO BEGIN[154]";
190 A=PEEK(197):IFA=64THEN190
199 REM LEVEL SELECT
200 PRINT"[147]"
201 PRINT"[150]SELECT LEVEL:-"
202 PRINT"[154]1:TOO EASY, FOR THE NOVICE"
203 PRINT"2:VERY EASY"
204 PRINT"3:EASIER, FOR THE BEGINNER"
205 PRINT"4:SLIGHTLY EASIER"
206 PRINT"5:FOR AVERAGE PLAYERS"
207 PRINT"6:FOR THE ABOVE AVERAGE"
208 PRINT"7:STILL HARD"
209 PRINT"8:NEARLY AS HARD AS LEVEL 9"
210 PRINT"9:VERY HARD, FOR THE EXPERT"
211 L=PEEK(197):IFL=64THEN211
212 IFL=56ORL=59ORL=8ORL=11ORL=16ORL=19ORL=24ORL=27ORL=32THEN214
213 GOTO211
214 GOSUB4500:POKEAD,240
215 PRINT"[147]":PC=1024+20:PL=55296+20
216 REM MORE SETUP ROUTINES
217 FORK=1TO13:TR$(K)="[160][166] [166][160]":NEXTK
218 TR$(14)="[160][166][154] [146] [166][160]":TR$(15)="[160][166] [154] [146] [166][160]"
219 TR$(16)="[160][166] [154] [146] [166][160]":TR$(17)="[160][166] [154] [146] [166][160]"
220 TA=15:POKEPC,90:POKEPL,8
230 FORK=1TO23:PRINTTAB(TA);TR$(1):GOSUB4000:NEXT
231 POKEPC,90:POKEPL,8
235 POKE198,0
240 PRINTTAB(TA+1);"[166][129][192][192][192][192][192][192][166]":D=0
250 REM MAIN GAME LOOP
260 POKEPC,90:POKEPL,8:POKEPC-1,32:POKEPC+1,32:D=INT(4*RND(1)+1)
263 GOSUB4000
270 IFD=1THENTA=TA-1:IFTA<1THENTA=1
280 IFD=2THENTA=TA+1:IFTA>29THENTA=29
290 IFD=3ORD=4THENTA=TA+0
300 IFL<=40THENF=INT(5*RND(1)+13):PRINTTAB(TA);TR$(F):GOTO305
301 IFL<=80THENE=INT(10*RND(1)+8):PRINTTAB(TA);TR$(E):GOTO305
302 IFL>80THENT=INT(17*RND(1)+1):PRINTTAB(TA);TR$(T)
305 IFPEEK(PC)=102ORPEEK(PC)=96ORPEEK(PC)=160THEN500
306 POKEPC,90:POKEPL,8:IFL<>0THENFORI=1TOL:NEXT
308 S=S+1:GETA$:IFA$=""THEN260
309 IFA$="A"THENPC=PC-1:PL=PL-1:GOSUB4100
310 IFA$="S"THENPC=PC+1:PL=PL+1:GOSUB4100
320 GOTO260
499 REM GAME OVER AND SCORE ROUTINE
500 POKEPC-40,32:POKEPC-41,32:POKEPC-39,32:POKEPC,87:FORK=4TO7:POKEPL,K
510 IFK=6THENPOKEPL,14
520 FORZ=1TO50:NEXT:NEXT:GOSUB4200
530 PRINT"[147] [154]GAME[146] OVER[146]"
540 PRINT"YOUR SCORE WAS:";
550 LE=ABS(LE-10):S=S*LE:PRINT"[150]";S:PRINT"HIGH SCORE IS:";HS;"[154]"
590 IFS<HSTHEN700
600 IFS=HSTHEN650
610 PRINT"[156]YOU HAVE THE NEW HIGH SCORE, WELL DONE!!":GOSUB4300:HS=S
630 PRINT"THE NEW HIGH SCORE IS:";HS:GOTO700
650 PRINT"[156]YOU HAVE EQUALED THE HIGH SCORE!":PRINT"WELL DONE!":GOTO700
700 PRINT"[129]PRESS F1[146] TO FINISH GAME AND"
710 PRINT"ANYTHING ELSE FOR ANOTHER"
720 A=PEEK(197):IFA=64THEN720
730 IFA<>4THEN10
740 PRINT"[147][154]";CHR$(9);:POKE808,237:POKE198,0:END
1000 REM INSTRUCTIONS
1010 PRINT"[147]";:GOSUB30
1020 PRINT" [150]BY C.R.WRIGHT 1983"
1030 PRINT"[154]";
1040 PRINT" THE OBJECT OF THIS GAME IS TO GET AS"
1050 PRINT"FAR INTO THE RACING TRACK AS POSSIBLE"
1060 PRINT"WITH YOUR CAR [129][218][154]. THE TRACK IS BORDERED"
1070 PRINT"WITH BEACONS [166] [166][154] AND THERE ARE ALSO";
1080 PRINT"MANY OBSTACLES [146] TO AVOID."
1090 PRINT" YOUR CONTROLS ARE AS FOLLOWS:-"
1100 PRINT
1110 PRINT" [156]A[154] - [156][218][154] - [156]S[154]"
1120 PRINT" THERE ARE 9 LEVELS OF PLAY AND THE"
1130 PRINT"HARDER THE LEVEL THE MORE OBSTACLES AND"
1140 PRINT"THE MORE SPEED!!!"
1160 PRINT"[144]PRESS ANY KEY TO BEGIN[154]"
1170 GETA$:IFA$=""THEN1170
1180 GOTO10
2000 REM INITIALIZE ROUTINE AND MACHINE CODE DATA
2010 PRINT"[147][150]PLEASE WAIT[154]":RESTORE
2030 FORE=49152TO49283:READN:POKEE,N:NEXT
2040 SYS49152:CLR:SYS49161
2045 FORE=49152TO49283:READN:NEXT
2050 FORE=1TO6:READN:FORJ=1TO8:READN(J):NEXT:QZ=0
2060 FORK=12288+(8*N)TO12288+(8*N)+7:QZ=QZ+1:POKEK,N(QZ):NEXT:NEXTE
2070 POKE808,239:GOTO3
3000 DATA169,48,141,52,0,141,56,0,96,169,0,141,14,220,169,51,141,1,0,162,0,189
3010 DATA0,208,157,0,48,189,0,209,157,0,49,189,0,210,157,0,50,189,0,211,157,0
3020 DATA51,189,0,212,157,0,52,189,0,213,157,0,53,189,0,214,157,0,54,189,0,215
3030 DATA157,0,55,232,224,255,208,203,173,255,208,141,255,48,173,255,209,141
3040 DATA255,49,173,255,210,141,255,50,173,255,211,141,255,51,173,255
3050 DATA212,141,255,52,173,255,213,141,255,53,173,255,214,141,255,54,169,55
3060 DATA141,1,0,169,1,141,14,220,169,28,141,24,208,96
3070 REM CHARACTER DATA
3080 DATA90,195,255,219,24,219,255,219,24
3090 DATA102,255,255,66,90,90,66,255,255
3100 DATA160,255,129,189,189,189,189,129,255
3110 DATA81,240,216,240,216,247,12,12,7
3120 DATA0,60,66,157,161,161,157,66,60
3130 DATA87,130,85,154,16,8,178,77,130
3999 REM SOUND SUBROUTINES
4000 POKEVL,15:POKEWV,32:POKEHN,55:POKELN,55:POKEVL,0:RETURN
4100 POKEVL,15:POKEWV,32:POKEHN,255:POKELN,255:POKEVL,0:RETURN
4200 POKEAD,9:POKEWV,129:POKEHN,3:POKELN,0
4210 FORQ=15TO12STEP-.01:POKEVL,Q:NEXT
4220 POKEWV,128:POKEVL,0:RETURN
4300 POKEAD,9:POKEWV,17:POKEHN,45:POKELN,55
4310 FORQ=15TO0STEP-.1:POKEVL,Q:NEXT
4320 POKEWV,16:RETURN
4500 REM LEVEL OF PLAY CONVERSIONS
4510 IFL=56THENLE=1
4520 IFL=59THENLE=2
4530 IFL=8THENLE=3
4540 IFL=11THENLE=4
4550 IFL=16THENLE=5
4560 IFL=19THENLE=6
4570 IFL=24THENLE=7
4580 IFL=27THENLE=8
4590 IFL=32THENLE=9
4600 L=ABS(LE-9)*14.5
4605 LE=ABS(LE-10)
4610 RETURN